package com.eudon.design_pattern.behavioral.mediator;

import java.util.ArrayList;
import java.util.List;

/**
 * @author eudon
 * @description 聊天室中介者实现
 * @date 2025/9/3
 * @email syd19970616@gmail.com
 * @address <a href="https://gitee.com/eudon">Gitee</a>
 */
public class ChatRoom implements Mediator {
    private List<User> users;
    
    public ChatRoom() {
        this.users = new ArrayList<>();
    }
    
    @Override
    public void sendMessage(String message, User sender) {
        // 将消息转发给除发送者外的所有用户
        for (User user : users) {
            if (user != sender) {
                //可以进行消息的脱敏处理，敏感词处理等操作
                user.receiveMessage(message, sender.getName());
            }
        }
    }
    
    @Override
    public void addUser(User user) {
        users.add(user);
        System.out.println(user.getName() + " 加入了聊天室");
    }
    
    /**
     * 获取聊天室用户数量
     * @return 用户数量
     */
    public int getUserCount() {
        return users.size();
    }
}